The dispatcher should be as fast as possible, since it is invoked during every process switch.
2.
:For iii ), windows maintains a Local Descriptor Table for each process; the task switcher is responsible for managing the appropriate CPUMMU registers to make sure the current one is active when a process switch occurs.
3.
So a process switch proceeds something like this a process requests a resource that is not immediately available, maybe a read of a record of a file from a block which is not currently in memory, or the system timer has triggered an interrupt.